package com.zmn.mcc.model.entity.staff;

import com.zmn.base.plat.engine.anole.aop.EncryptDecryptClass;
import com.zmn.base.plat.engine.anole.aop.EncryptDecryptField;
import com.zmn.mcc.model.BaseModel;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

@EncryptDecryptClass(key = "staffId")
@Data
public class McStaff extends BaseModel implements Serializable {
    private static final long serialVersionUID = -3791604527076641641L;

    private Integer staffId;
    private String staffName;
    private String realName;
    private String pinyinName;
    private String password;
    private String salt;
    private Integer initPwd;
    private Integer sex;
    private Integer companyId;
    private Integer orgTop;
    private Integer plat;
    private Integer orgOneId;
    private Integer orgTwoId;
    private Integer orgThrId;
    private Integer orgId;
    private Integer deptOneId;
    private Integer deptTwoId;
    private Integer deptThrId;
    private Integer deptFourId;
    private Integer deptFiveId;
    private Integer deptId;
    private String deptName;
    /**
     * 直线经理ID
     */
    private Integer leaderId;
    /**
     * 直线经理
     */
    private String leaderName;

    @EncryptDecryptField
    private String mobile;

    @EncryptDecryptField
    private String phone;
    private String mail;
    private Integer workPlaceProvince;
    private Integer workPlaceCity;

    private Integer whitelist;
    private Integer permitSelf;
    private Integer dpermitOrgSelf;
    private Integer dpermitDeptSelf;
    private Integer dpermitAreaSelf;
    private Integer dpermitChannelSelf;
    private Integer dpermitCubeSelf;
    private Integer dpermitMeasureSelf;
    private Integer dpermitProductSelf;
    private Integer dpermitPromotionSelf;
    private Integer dpermitCooperationSelf;
    private Integer identityType;
    private Integer type;

    /** 钉钉userId **/
    private String dTalkId;

    /** 档案号 **/
    private String archivesNumber;

    /** 工号 **/
    private String staffNumber;

    /** 员工状态，1试用，2正式，3离职 **/
    private Integer staffStatus;

    /** 职务 **/
    private String post;

    /**
     * 职务ID，对应角色ID（主职）
     */
    private Integer postId;

    /** 职级，1专员，2主管，3经理，4总监 **/
    private Integer positionLevel;

    /** 职级 **/
    private Integer probationPeriodType;

    /** 入职时间 **/
    private Date entryTime;

    /** 转正时间 **/
    private Date becomeFormalTime;

    /** 最后登录时间 **/
    private Date lastLoginTime;

    /**
     * 开始工作时间，格式：HH:mm:ss
     */
    private String startWorkTime;

    /**
     * 结束工作时间，格式：HH:mm:ss
     */
    private String stopWorkTime;

    /**
     * 职序类型：M(管理序列)，S(营销序列)，F(运营序列)，T(技术序列)，P(职能序列)
     */
    private String gradesType;

    private String remark;

    /**
     * 北森用户id
     */
    private Integer bsUserId;
    private Integer sort;
    private Integer status;
    private String updater;
    private Date updateTime;
    private Date createTime;
    private String creater;
}